// 基础类型(数字、布尔、字符串、undefined、NaN)
var n:number = 123
n = 456
console.log(n);

var bool:boolean = true

bool = false

// any 任意类型（不建议使用any） 
// 如果满篇都是any，就等同于没有类型约束
var a:any = 123
a = '666'

// 函数中的类型约束
function sum(b:number,c:number):number{
	let m = b + c
	return m
}

console.log(sum(1,2));

// 函数不返回任何内容
function other(b:number):void{
	console.log(b);
}


// 可选参数
function haveLauch(food:string,fruit?:string){
	console.log(`午饭吃${food},水果是${fruit?fruit:''}`);
}

haveLauch('米饭')

// 默认参数
function haveLauch1(food:string,fruit:string="西瓜"){
	console.log(`午饭吃${food},水果是${fruit}`);
}

haveLauch1('拉面')

// rest剩余参数
function sum1(b:number,c:number,...arg:number[]):number{
	let m = b + c
	arg.forEach((item:number)=>{
		m += item
	})
	return m
}

console.log(sum1(1,2,3,4,5,6,7,8,9));

// TS中有两种箭头（比较少用，但要认识）
// 1. 代表类型约束的箭头
// 2. 箭头函数的箭头

let add:(b:number,c:number) => number  //类型箭头
add = (num1,num2) => {  //箭头函数
	return num1+num2
}